Modern processors are designed to protect sensitive data in memory from both hardware and software attacks. Some processors provide cryptographic mechanisms for encryption, integrity, and replay protection. Memory encryption protects the confidentiality of memory-resident data. On the other hand, integrity protection prevents an attacker from causing any hidden modifications to the ciphertext (i.e., encrypted data, as opposed to plaintext which is unencrypted data) in memory, and replay protection eliminates any undetected temporal substitution of the ciphertext. In the absence of such protections, an attacker with physical access to the system can record snapshots of data lines and replay them at a later point in time.